package 简单.哈希表;

import java.util.HashSet;
import java.util.Set;

/**
 * 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。
 * 两个字符串 相似 的前提是它们都含有相同数目的元音（'a','e','i','o',
 * 'u','A','E','I','O','U'）。注意,s 可能同时含有大写和小写字母。
 * 如果 a 和 b 相似,返回 true ；否则,返回 false 。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/determine-if-string-halves-are-alike
 */
public class 判断字符串的两半是否相似_1704 {

    public static void main(String[] args) {

    }

    public boolean halvesAreAlike(String s) {
        Set<Character> set = new HashSet<>();
        char[] chars = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
        for (char c : chars) {
            set.add(c);
        }

        int count = 0;
        char[] array = s.toCharArray();
        for (int i = 0; i < s.length() / 2; i++) {
            if (set.contains(array[i])) {
                count++;
            }
        }
        for (int i = s.length() / 2; i < s.length(); i++) {
            if (set.contains(array[i])) {
                count--;
            }
            if (count < 0) {
                return false;
            }
        }

        return count == 0 ? true : false;
    }

}
